togglebutton: always set PRELIGHT state when in_button = TRUE
authorCosimo Cecchi <cosimoc@gnome.org>
Fri, 14 Sep 2012 17:03:07 +0000 (13:03 -0400)
committerCosimo Cecchi <cosimoc@gnome.org>
Fri, 14 Sep 2012 17:38:15 +0000 (13:38 -0400)
Previously, we would avoid setting the prelight state flag when
button_down was TRUE and draw_indicator = FALSE, which is the normal
case of a GtkToggleButton during a mouse press.
It looks like this behavior was introduced a long time ago with commit
b94e6c0a8036a0489ac8ca71de75ba7611218e50. I believe the reason was that
a widget in GTK2 couldn't have more than a single state (e.g.
hover+active) at a given moment.

https://bugzilla.gnome.org/show_bug.cgi?id=684038

gtk/gtktogglebutton.c

index cb011fc6a63d880217c0016a23142995c6dc2fff..999710c1671d93592c7f7a0f86e114a90356dc5d 100644 (file)
@@ -644,7 +644,7 @@ gtk_toggle_button_update_state (GtkButton *button)
   else
     depressed = priv->active;
 
-  if (button->priv->in_button && (!button->priv->button_down || priv->draw_indicator))
+  if (button->priv->in_button)
     new_state |= GTK_STATE_FLAG_PRELIGHT;
 
   if (depressed)